package com.freedom.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.freedom.bean.core.SysMenu;

/**
 * easyui tree工具类
 * @author HGJ
 *
 */
public class EasyUITreeUtil {

	/**
	 * 将用户菜单封装成树形菜单1.1
	 * @param sysMenus 用户的菜单
	 * @return
	 */
	public static List<EasyUITreeNode> getSysMenus(List<SysMenu> sysMenus){
		List<EasyUITreeNode> easyUITrees = new ArrayList<EasyUITreeNode>();
		Map<String,Object> map = null;
		EasyUITreeNode easyUITreeNode = null;
		if(sysMenus.size()!=0){
			for(int i=0;i<sysMenus.size();i++){
				if(StringUtils.isEmpty(sysMenus.get(i).getParentId())){ //封装父节点
					map = new HashMap<String,Object>();
					easyUITreeNode = new EasyUITreeNode();
					easyUITreeNode.setIconCls("icon-2012080404391");
					easyUITreeNode.setId(String.valueOf(sysMenus.get(i).getId()));
					map.put("parent_ids", sysMenus.get(i).getParentIds());
					map.put("soft", sysMenus.get(i).getSort());
					easyUITreeNode.setAttributes(map);
					easyUITreeNode.setText(sysMenus.get(i).getName());
					easyUITreeNode.setChildren(getChildren(sysMenus,sysMenus.get(i).getId()));
					easyUITrees.add(easyUITreeNode);
				}
			}
		}
		return easyUITrees;
	}

	/**
	 * 递归循环子级菜单
	 * @param sysMenus
	 * @param id
	 * @return
	 */
	private static List<EasyUITreeNode> getChildren(List<SysMenu> sysMenus,String id) {
		List<EasyUITreeNode> easyUITrees = new ArrayList<EasyUITreeNode>();
		Map<String,Object> map = null;
		EasyUITreeNode easyUITreeNode = null;
		if(sysMenus.size()!=0){
			//List<String> sortId = new ArrayList<String>();
			for(int i=0;i<sysMenus.size();i++){
				//sortId.add(String.valueOf(sysMenus.get(i).getSort()));
				//Collections.sort(sortId); //排序*/
				if(!StringUtils.isEmpty(sysMenus.get(i).getParentId())){
					if(id.equals(sysMenus.get(i).getParentId()) && sysMenus.get(i).getIsShow()==1){
						easyUITreeNode = new EasyUITreeNode();
						map = new HashMap<String,Object>();
						easyUITreeNode.setIconCls("icon-key");
						easyUITreeNode.setId(String.valueOf(sysMenus.get(i).getId()));
						map.put("soft", sysMenus.get(i).getSort());
						easyUITreeNode.setAttributes(map);
						easyUITreeNode.setText(sysMenus.get(i).getName());
						easyUITreeNode.setUrl(sysMenus.get(i).getHref());
						easyUITreeNode.setChildren(getChildren(sysMenus,sysMenus.get(i).getId()));
						easyUITrees.add(easyUITreeNode);
					}
				}
			}
		}
		return easyUITrees;
	}
	
}
